package com.cleaningcloud.cld.service.impl.mini;

import com.cleaningcloud.cld.domain.CldEvaluate;
import com.cleaningcloud.cld.domain.vo.CldEvaluateVo;
import com.cleaningcloud.cld.mapper.CldEvaluateMapper;
import com.cleaningcloud.cld.service.mini.IMiniEvaluateService;
import com.cleaningcloud.common.core.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * packageName com.cleaningcloud.cld.service.impl.mini
 *
 * @author Shaw
 * @version JDK 8
 * @className MiniEvaluateServiceImpl
 * @date 2025-06-18
 * @description 小程序(客户端)-客户评价
 */
@Service
public class MiniEvaluateServiceImpl implements IMiniEvaluateService {

    @Autowired
    CldEvaluateMapper cldEvaluateMapper;

    /**
     * @Author Shaw
     * @Description 新增客户评价
     * @date: 2025-06-18 10:03
     * @param: //TODO
     */
    @Override
    public int insertEvaluate(CldEvaluate cldEvaluate) {
        //项目评价
        if(cldEvaluate.getEvaluateSelect() == 2){
            CldEvaluateVo vo = new CldEvaluateVo();
            vo.setEvaluateTime(DateUtils.getNowDate());
            vo.setProjectId(cldEvaluate.getProjectId());
            vo.setOperaId(cldEvaluate.getOperaId());
            List<CldEvaluateVo> volist = cldEvaluateMapper.getCldEvaluateListProject(vo);
            if(!volist.isEmpty()){
                throw new RuntimeException("当月已评价，请勿重复评价!");
            }
        }
        cldEvaluate.setEvaluateTime(DateUtils.getNowDate());
        cldEvaluate.setEvaluateStatus(1L);
        cldEvaluate.setEvaluateType(1L);
        cldEvaluate.setFlag(0L);
        return cldEvaluateMapper.insertCldEvaluate(cldEvaluate);
    }

    /**
     * @Author Shaw
     * @Description 根据日期获取客户对员工评价列表
     * @date: 2025-06-20 15:47
     * @param: //TODO
     */
    @Override
    public List<CldEvaluateVo> getCldEvaluateListByDate(CldEvaluateVo cldEvaluateVo){
        return cldEvaluateMapper.getCldEvaluateListByDate(cldEvaluateVo);
    }

    /**
     * @Author Shaw
     * @Description 根据日期获取客户对员工(综合)评价列表
     * @date: 2025-06-20 15:47
     * @param: //TODO
     */
    @Override
    public List<CldEvaluateVo> getCldEvaluateListByDateComprehensive(CldEvaluateVo cldEvaluateVo){
        return cldEvaluateMapper.getCldEvaluateListByDateComprehensive(cldEvaluateVo);
    }

    /**
     * @Author Shaw
     * @Description 根据日期获取客户对项目评价列表
     * @date: 2025-06-20 15:47
     * @param: //TODO
     */
    @Override
    public List<CldEvaluateVo> getCldEvaluateListProject(CldEvaluateVo cldEvaluateVo){
        return cldEvaluateMapper.getCldEvaluateListProject(cldEvaluateVo);
    }

    /**
     * @Author Shaw
     * @Description 根据评价ID获取详情（员工）
     * @date: 2025-06-20 15:47
     * @param: //TODO
     */
    @Override
    public CldEvaluateVo getCldEvaluateInfoById(Long evaluateId){
        return cldEvaluateMapper.getCldEvaluateInfoById(evaluateId);
    }

    /**
     * @Author Shaw
     * @Description 根据评价ID获取详情（项目）
     * @date: 2025-06-20 15:47
     * @param: //TODO
     */
    @Override
    public CldEvaluateVo getCldEvaluateInfoByProject(Long evaluateId){
        return cldEvaluateMapper.getCldEvaluateInfoByProject(evaluateId);
    }
}